unit form_main;

{$mode objfpc}{$H+}

interface

uses
    Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
    Menus, ComCtrls, form_move, form_scale, form_rotate, picture_core, picture_publ;

type

    { Tfm_main }

    Tfm_main = class(TForm)
        ar_pic: TImage;
        mn_ext: TMenuItem;
        mn_act: TMenuItem;
        mn_edt: TMenuItem;
        bt_ext: TMenuItem;
        bt_mov: TMenuItem;
        bt_scl: TMenuItem;
        bt_rot: TMenuItem;
        bt_und: TMenuItem;
        bt_clr: TMenuItem;
        mn_main: TMainMenu;
        procedure bt_clrClick(Sender: TObject);
        procedure bt_extClick(Sender: TObject);
        procedure bt_movClick(Sender: TObject);
        procedure bt_sclClick(Sender: TObject);
        procedure bt_rotClick(Sender: TObject);
        procedure bt_undClick(Sender: TObject);
        procedure FormShow(Sender: TObject);
    private
    public
    end;

var
    fm_main: Tfm_main;

implementation

{$R *.lfm}

// Загрузка формы
procedure Tfm_main.FormShow(Sender: TObject);
begin
    pic_graph := TPicture.init(ar_pic);
end;

// Выход из программы
procedure Tfm_main.bt_extClick(Sender: TObject);
begin
    Application.Terminate;
end;

// Восстановление исходного изображения
procedure Tfm_main.bt_clrClick(Sender: TObject);
begin
    pic_graph.conv_restore();
    pic_graph.conv_apply();
end;

// Параметры переноса
procedure Tfm_main.bt_movClick(Sender: TObject);
begin
    form_move.fm_move.Show();
end;

// Параметры масштабирования
procedure Tfm_main.bt_sclClick(Sender: TObject);
begin
    form_scale.fm_scale.Show();
end;

// Параметры поворота
procedure Tfm_main.bt_rotClick(Sender: TObject);
begin
    form_rotate.fm_rotate.Show();
end;

// Отмена последнего действия
procedure Tfm_main.bt_undClick(Sender: TObject);
begin
    if not pic_graph.conv_undo() then
        ShowMessage('Отсутствуют изменения для их отмены.');
end;

end.

